#if _MSC_VER
 #pragma once
#endif

#ifndef HERZELEID_STORAGEKEYS_HXX
 #define HERZELEID_STORAGEKEYS_HXX
 #include "HerzeleidUtility.hxx"

// Reserved keys (in case the default type params are used)
HerzeleidUtilityNamespaceBegin enum class StorageReservedKeys
{
	Device3				= 0x00000000,		// Reserves the position for the d3d11 device (the last com to clean)
	ImmediateContext3	= 0x00000001,		// Reserves the position for the d3d11 immediate device context
	DeferredContext3	= 0x00000002,		// Reserves the position for the d3d11 deferred device contexts
	Device2				= 0x00000003,		// Reserves the position for the d2d1 device
	Context2			= 0x00000004,		// Reserves the position for the d2d1 device context
	Factory3			= 0x00000005,		// Reserves the position for the d3d11 (or dxgi) factories
	Factory2			= 0x00000006,		// Reserves the position for the d2d1 (or dxgi) factories 
	ResourceView		= 0x00000007,		// Reserves the position for the d3d11 resource views (should be destroyed before their resources will)
	Resource			= 0x00000008,		// Reserves the position for the d3d11 resource
	ApplicationView		= 0xffffffff		// Reserves the last position for the core app view

} HerzeleidUtilityNamespaceEnd;

#endif // !HERZELEID_STORAGEKEYS_HXX
